package com.atguigu.chaptar9

object $02_ImplicitParam {
  def main(args: Array[String]): Unit = {
    /*
    隐式转换参数
        语法:
            1.定义一个方法,方法需要指定哪个参数后续会由scala悄悄传入
              def 方法名(参数名:参数类型,..)(implicit 参数名:参数类型) ={..}
            2.定义一个参数,用implicit标识,表明后续该参数可以由scala作为值传递给方法的参数
              implicit val 参数名:参数类型 = 值
              这参数自动传入方法中的implicit参数中
     */
    //调用定义了隐式参数的方法
    implicit val x:Int = 3
    add1(1)//这里如果没有定义好隐式参数,方法会报错,要求手动传一个参数,所以应该先定义隐式参数再调用含隐式参数的方法
  }
  def add1(x:Int)(implicit y:Int):Int=x+y
  def add2(x:Int)(implicit y:Int):Int=x-y
  def add3(x:Int)(implicit y:Int):Int=x/y

}
